/*
 * @Author: wangshuixin 2412658453@qq.com
 * @Date: 2025-06-03 22:12:11
 * @LastEditors: wangshuixin 2412658453@qq.com
 * @LastEditTime: 2025-06-06 16:42:44
 * @FilePath: /my-app/src/utils/DeliverConfirmFile.ts
 * @Description: 送达确认书 >>> 导出配置文件
 */
import { cmToDxa } from './WordExporter';

interface DeliverConfirmFileType {
  cityName?: string, // 城市名称
  applicant?: string, // 申请人
  applicantAddress?: string, // (申请人)送达地址
  applicantPostalCode?: string, // (申请人)邮政编码
  applicantReceiver?: string, // (申请人)代收人
  applicantPhone?: string, // (申请人)电话（办公/住宅/移动电话）
  applicantOtherContacts?: string, // (申请人)其他联系方式
  respondent?: string, // 被申请人
  respondentAddress?: string, // (被申请人)送达地址
  respondentPostalCode?: string, // (被申请人)邮政编码
  respondentAdmin?: string, // (被申请人)收件人
  respondentReceiver?: string, // (被申请人)代收人
  respondentPhone?: string, // (被申请人)电话（办公/住宅/移动电话）
  respondentOtherContacts?: string, // (被申请人)其他联系方式
  applyTime?: string, // 送达确认时间
}

// 导出“xx市劳动人事争议仲裁委员会送达确认书.docx”
export const deliverConfirmFileGenerator = async (exporter, config?: DeliverConfirmFileType) => {
  const tableData = [
    [
      {
        data: [[
          {
            text: "告知事项",
            style: { fontSize: 11 }
          }
        ]],
        verticalAlign: "center",
        alignment: "center",
        width: {
          size: 22,
        },
      },
      {
        data: [
          [{
            text: "1. 当事人有权要求对本确认书的内容保密。",
            style: {
              fontSize: 11
            }
          }], [{
            text: "2. 当事人拒绝提供送达地址的，自然人以其户籍登记中的住所地或者经常居住地为送达地址；法人或者其他组织以其工商登记或者其他依法登记、备案的住所地为送达地址。",
            style: {
              fontSize: 11
            }
          }], [{
            text: "3. 因当事人提供的送达地址不准确、拒不提供送达地址、送达地址变更后未及时告知，导致仲裁文书未能被当事人实际接收的，文书被退回之日视为送达之日。",
            style: {
              fontSize: 11
            }
          }], [{
            text: "受送达人能证明自己在仲裁文书送达的过程中没有过错的，不适用前款规定。",
            style: {
              fontSize: 11
            }
          }], [{
            text: "注意：当事人填写详细送达地址资料并签章后，须在开庭之日前（含当日）将本确认书交回或寄回，否则将视为拒绝提供送达地址，相关法律后果由本人承担。",
            style: {
              fontSize: 11
            }
          }]
        ],
        indent: { firstLine: cmToDxa(0.8) }
      }
    ],
    [
      {
        data: [
          [{
            text: "当事人提供",
            style: { fontSize: 11 }
          }], [{
            text: "的送达地址",
            style: { fontSize: 11 }
          }]
        ],
        verticalAlign: "center",
        alignment: "center",
        rowSpan: 2,
        width: {
          size: 22,
        },
      },
      {
        data: [
          [{
            text: `申请人：${config?.applicant}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `送达地址：${config?.applicantAddress}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `邮政编码：${config?.applicantPostalCode}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `收件人：${config?.applicant}`,
            style: {
              fontSize: 11,
            }
          }, {
            text: `\t代收人：${config?.applicantReceiver}`,
            style: {
              fontSize: 11,
            }
          }], [{
            text: `电话（办公/住宅/移动电话）：${config?.applicantPhone}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `其他联系方式：${config?.applicantOtherContacts}`,
            style: {
              fontSize: 11
            }
          }]
        ],
        tabStops: [
          {
            position: cmToDxa(3.6), // 制表位位置（单位：twips）
            type: "left",
          }
        ]
      }
    ],
    [
      {
        data: [
          [{
            text: `被申请人：${config?.respondent}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `送达地址：${config?.respondentAddress}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `邮政编码：${config?.respondentPostalCode}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `收件人：${config?.respondentAdmin}`,
            style: {
              fontSize: 11
            }
          }, {
            text: `\t代收人：${config?.respondentReceiver}`,
            style: {
              fontSize: 11,
            }
          }], [{
            text: `电话（办公/住宅/移动电话）：${config?.respondentPhone}`,
            style: {
              fontSize: 11
            }
          }], [{
            text: `其他联系方式：${config?.respondentOtherContacts}`,
            style: {
              fontSize: 11
            }
          }]
        ],
        tabStops: [
          {
            position: cmToDxa(3.6), // 制表位位置（单位：twips）
            type: "left",
          }
        ]
      }
    ],
    [
      {
        data: [
          [{
            text: "当事人对",
            style: { fontSize: 11 }
          }], [{
            text: "送达地址",
            style: { fontSize: 11 }
          }], [{
            text: "的  确  认",
            style: { fontSize: 11 }
          }]
        ],
        verticalAlign: "center",
        alignment: "center",
        width: {
          size: 22,
        },
      },
      {
        data: [
          [{
            text: "我已经阅读了送达地址确认书的告知事项，并保证在本案仲裁期间，上述送达地址是准确、有效的。",
            style: {
              fontSize: 11
            }
          }], [{
            text: "\t当事人或代理人签名：",
            style: {
              fontSize: 11
            }
          }], [{
            text: "",
            style: {
              fontSize: 11
            }
          }], [{
            text: `\t\t${config?.applyTime}`,
            style: {
              fontSize: 11
            }
          }]
        ],
        indent: { firstLine: cmToDxa(0.8) },
        tabStops: [
          {
            position: cmToDxa(6.6), // 制表位位置（单位：twips）
            type: "left",
          },
          {
            position: cmToDxa(5), // 制表位位置（单位：twips）
            type: "left",
          }
        ]
      }
    ]
  ]
  const titleStrArr = [`${config?.cityName ?? "南昌市"}劳动人事争议仲裁委员会`, "送达确认书"]
  exporter.addTitle(titleStrArr, { bold: true })
    .addTable(tableData)
}